<template>
  <div>
      学习Vuex，全局状态管理
  </div>
</template>
<script>
export default {

  /*
   * Vuex是什么
   *   专为Vuex.js应用程序开发的状态管理模式
   *   采用集中式存储管理应用的所有组件的状态
   *   以相应的规则保证以一种可预测的方式发生变化
   * 
   * 状态
   *   组件内部状态：仅在一个组件内使用的状态(data字段)
   *   应用级别状态：多个组件共用的状态
   * 
   * 什么情况下使用Vuex
   *   多个视图依赖同一状态
   *   来自不同视图的行为需要变更同一状态
  */

  /*
   * 安装Vuex模块
   *    npm install vuex --save
   * 
   * 作为插件使用
   *    Vuex.use(Vuex)
   * 
   * 定义容器
   *    new Vuex.Store()
   * 
   * 注入根实例
   *    {
   *      store
   *    }
  */

  /*
   * Vuex的核心概念:
   * 
   *    store：类似容器，包含应用的大部分状态
   *        一个页面只能有一个store
   *        状态存储是响应式的
   *        不能直接改变store的状态，唯一途径是显示地提交mutations
   * 
   *    State：包含所有应用级别状态的对象(data)
   *    
   *    Getters：在组件内部获取store中状态的函数(计算属性computed)
   *    
   *    Mutations：唯一修改状态的事件回调函数(methods)
   * 
   *    Actions：包含异步操作、提交mutation改变状态(异步操作提交mutation)
   * 
   *    Modules：将store分割成不同的模块
   * 
   * 
   * Vuex的辅助函数:
   * 
   *    mapState
   *    
   *    mapGetters
   * 
   *    mapMutations
   * 
   *    mapActions
  */

  name: 'demo',
  data(){
      return {

      }
  }
}
</script>
<style>

</style>
